package paqv_vista;

import com.sun.rowset.CachedRowSetImpl;
import java.sql.SQLException;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import paq_clase_interfaz.interfaz_modulo;
import paq_entidades.entiv_mo_as_uni;
import java.util.ArrayList;
import java.text.ParseException;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import paq_clase_interfaz.interfaz_programa_postgrado;
import javax.faces.model.SelectItem;
import paq_clase_interfaz.interfaz_tipoinformacion;

@ManagedBean()
@SessionScoped
public class Vista_modulo extends Vista_campostxt {

    CachedRowSetImpl crs = null;
    CachedRowSetImpl crs2 = null;
    CachedRowSetImpl crs3 = null;
    @EJB
    private interfaz_modulo eliminar;
    @EJB
    private interfaz_modulo insertar;
    @EJB
    private interfaz_modulo actualizar;
    @EJB
    private interfaz_modulo lista;
    @EJB
    private interfaz_modulo listaactualiza;
    @EJB
    private interfaz_programa_postgrado comboprograma;
    @EJB
    private interfaz_tipoinformacion combotipo;
    entiv_mo_as_uni entidad = new entiv_mo_as_uni();
    public List listaprograma2 = new ArrayList();
    public List listatipo = new ArrayList();
    List l1 = null;

    public void insertar() {
        if ("".equals(txtnombresmod) || "".equals(txttipomod) || "".equals(txtcodigo_programa)) {
            mensaje = "Se requieren datos";
        } else {

            insertar.insertar(txtnombresmod, txtcreditos, txttipomod, txtcodigo_programa);
            mensaje = "ok";
            limpiar();
        }
    }

    public void eliminar() {
        entidad = (entiv_mo_as_uni) tabla.getRowData();
        this.txtcodigomod = entidad.getCodigo();
        eliminar.eliminar(txtcodigomod);
        limpiar();
    }

    public void modificar() {
        actualizar.actualizar(txtcodigomod, txtnombresmod, txtcreditos, txttipomod, txtcodigo_programa);
        limpiar();
    }

    public ArrayList<entiv_mo_as_uni> getLista1() {
        ArrayList listae = new ArrayList();
        crs = lista.getLista();

        try {
            entiv_mo_as_uni objart;
            while (crs.next()) {
                objart = new entiv_mo_as_uni();
                objart.setCodigo(crs.getString("mod_codigo"));
                objart.setNombre(crs.getString("mod_nombre"));
                objart.setCreditos(crs.getInt("mod_numerocreditos"));
                objart.setTipo(crs.getString("mod_descripcion"));
                objart.setPp_codigo(crs.getString("pp_codigo"));

                listae.add(objart);

            }
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null,
                    e.getMessage());
        }
        return listae;
    }

    public ArrayList<entiv_mo_as_uni> getLista2() {
        ArrayList listae = new ArrayList();
        crs2 = listaactualiza.getListaactuaaliza(txtcodigo_programa);
        try {
            entiv_mo_as_uni objart;
            while (crs2.next()) {
                objart = new entiv_mo_as_uni();
                objart.setCodigo(crs2.getString("mod_codigo"));
                objart.setNombre(crs2.getString("mod_nombre"));
                objart.setCreditos(crs2.getInt("mod_numerocreditos"));
                objart.setTipo(crs2.getString("mod_descripcion"));
                objart.setPp_codigo(crs2.getString("pp_codigo"));
                listae.add(objart);
            }
        } catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog(null,
                    e.getMessage());
        }
        return listae;
    }

    public void seleccionLista() throws ParseException {
        entidad = (entiv_mo_as_uni) tabla.getRowData();
        this.txtcodigomod = entidad.getCodigo();
        this.txtnombresmod = entidad.getNombre();
        this.txttipomod = entidad.getTipo();
        this.txtcreditos = entidad.getCreditos();
        this.txtcodigo_programa = entidad.getPp_codigo();
    }

    public void limpiar() {
        txtcodigomod = "";
        txtnombresmod = "";
        txtcreditos = null;
        txttipomod = "";
    }

    public List getListaprograma() {
        listaprograma2.clear();
        try {
            crs3 = comboprograma.getcomboprograma();
            while (crs3.next()) {
                listaprograma2.add(new SelectItem(crs3.getString("pp_codigo"), crs3.getString("pp_nombre")));
            }
            crs3.close();
        } catch (SQLException ex) {
            // Logger.getLogger(entiv_programa_postgrado.class.getName()).log(Level.SEVERE, null, ex);
        }
        return listaprograma2;
    }

    public List getListatipo() {
        listatipo.clear();
        try {
            crs3 = combotipo.getListacomboinformacion();
            while (crs3.next()) {
                listatipo.add(new SelectItem(crs3.getString("ti_codigo"), crs3.getString("ti_descripcion")));
            }
            crs3.close();
        } catch (SQLException ex) {
            
        }
        return listatipo;
    }

    public String devolver() {
        return txtcodigo_programa;
    }
}
